//package cn.tqfeiyang.springplus.framework.toolkit;
//
//import cn.tqfeiyang.springplus.framework.Constants;
//import cn.tqfeiyang.springplus.framework.exception.BusinessException;
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
//import org.apache.commons.codec.digest.DigestUtils;
//import jakarta.servlet.http.HttpServletRequest;
//
//import java.util.UUID;
//
//public class TokenUtils {
//
//    /**
//     * 生成Token
//     *
//     * @param userId
//     * @return
//     * @throws Exception
//     */
//    public static String generateToken(Long userId) {
//        return Constants.TOKEN_PREFIX
//                + DigestUtils.md5Hex(userId.toString())
//                + UUID.randomUUID().toString().replaceAll("-", "");
//    }
//
//    /**
//     * 从请求头或者请求参数中获取token
//     *
//     * @param request
//     * @return token
//     */
//    public static String getToken(HttpServletRequest request) {
//        String token = request.getHeader(Constants.TOKEN_HEADER_NAME);
//        if (StringUtils.isBlank(token)) {
//            token = request.getParameter(Constants.TOKEN_PARAM_NAME);
//        }
//        if (StringUtils.isBlank(token)) {
//            token = CookieUtils.getCookieValueByName(request, Constants.TOKEN_COOKIE_NAME);
//        }
//        if (StringUtils.isBlank(token)) {
//            return null;
//        }
//        return checkToken(token);
//    }
//
//    /**
//     * 校验是否是正确的token
//     *
//     * @param token
//     * @throws Exception
//     */
//    private static String checkToken(String token) {
//        if (!token.startsWith(Constants.TOKEN_PREFIX)) {
//            throw new BusinessException("token错误");
//        }
//        return token;
//    }
//
//}
